// ******************************************************************************
// Copyright     :  Copyright (C) 2023, Hisilicon Technologies Co. Ltd.
// File name     :  smmu_c_union_define.h
// Project line  :  Platform And Key Technologies Development
// Department    :  CAD Development Department
// Author        :  xxx
// Version       :  1.0
// Date          :  2023/06/15
// Description   :  The description of xxx project
// Others        :  Generated automatically by nManager V5.1
// History       :  xxx 2023/06/15 15:17:49 Create file
// ******************************************************************************

#ifndef __SMMU_C_UNION_DEFINE_H__
#define __SMMU_C_UNION_DEFINE_H__

/* Define the union csr_smmu_idr0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 s2p : 1;         /* [0] */
        u32 s1p : 1;         /* [1] */
        u32 ttf : 2;         /* [3:2] */
        u32 cohacc : 1;      /* [4] */
        u32 btm : 1;         /* [5] */
        u32 httu : 2;        /* [7:6] */
        u32 dormhint : 1;    /* [8] */
        u32 hyp : 1;         /* [9] */
        u32 ats : 1;         /* [10] */
        u32 ns1ats : 1;      /* [11] */
        u32 asid16 : 1;      /* [12] */
        u32 msi : 1;         /* [13] */
        u32 sev : 1;         /* [14] */
        u32 atos : 1;        /* [15] */
        u32 pri : 1;         /* [16] */
        u32 vmw : 1;         /* [17] */
        u32 vmid16 : 1;      /* [18] */
        u32 cd2l : 1;        /* [19] */
        u32 vatos : 1;       /* [20] */
        u32 ttendian : 2;    /* [22:21] */
        u32 rsv_0 : 1;       /* [23] */
        u32 stall_model : 2; /* [25:24] */
        u32 term_model : 1;  /* [26] */
        u32 st_level : 2;    /* [28:27] */
        u32 rsv_1 : 3;       /* [31:29] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_idr0_u;

/* Define the union csr_smmu_idr1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 sidsize : 6;        /* [5:0] */
        u32 ssidsize : 5;       /* [10:6] */
        u32 priqs : 5;          /* [15:11] */
        u32 eventqs : 5;        /* [20:16] */
        u32 cmdqs : 5;          /* [25:21] */
        u32 attr_perms_ovr : 1; /* [26] */
        u32 attr_types_ovr : 1; /* [27] */
        u32 rel : 1;            /* [28] */
        u32 queues_preset : 1;  /* [29] */
        u32 tables_preset : 1;  /* [30] */
        u32 rsv_2 : 1;          /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_idr1_u;

/* Define the union csr_smmu_idr2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ba_vatos : 10; /* [9:0] */
        u32 rsv_3 : 22;    /* [31:10] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_idr2_u;

/* Define the union csr_smmu_idr3_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_4 : 2;  /* [1:0] */
        u32 had : 1;    /* [2] */
        u32 pbha : 1;   /* [3] */
        u32 xnx : 1;    /* [4] */
        u32 pps : 1;    /* [5] */
        u32 rsv_5 : 1;  /* [6] */
        u32 mpam : 1;   /* [7] */
        u32 fwb : 1;    /* [8] */
        u32 stt : 1;    /* [9] */
        u32 ril : 1;    /* [10] */
        u32 bbml : 2;   /* [12:11] */
        u32 rsv_6 : 19; /* [31:13] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_idr3_u;

/* Define the union csr_smmu_idr4_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_7 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_idr4_u;

/* Define the union csr_smmu_idr5_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 oas : 3;        /* [2:0] */
        u32 rsv_8 : 1;      /* [3] */
        u32 gran4k : 1;     /* [4] */
        u32 gran16k : 1;    /* [5] */
        u32 gran64k : 1;    /* [6] */
        u32 rsv_9 : 3;      /* [9:7] */
        u32 vax : 2;        /* [11:10] */
        u32 rsv_10 : 4;     /* [15:12] */
        u32 stall_max : 16; /* [31:16] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_idr5_u;

/* Define the union csr_smmu_iidr_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 implementer : 12; /* [11:0] */
        u32 revision : 4;     /* [15:12] */
        u32 variant : 4;      /* [19:16] */
        u32 productid : 12;   /* [31:20] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_iidr_u;

/* Define the union csr_smmu_aidr_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 archminorrev : 4; /* [3:0] */
        u32 archmajorrev : 4; /* [7:4] */
        u32 rsv_11 : 24;      /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_aidr_u;

/* Define the union csr_smmu_cr0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 smmuen : 1;   /* [0] */
        u32 priqen : 1;   /* [1] */
        u32 eventqen : 1; /* [2] */
        u32 cmdqen : 1;   /* [3] */
        u32 atschk : 1;   /* [4] */
        u32 rsv_12 : 1;   /* [5] */
        u32 vmw : 3;      /* [8:6] */
        u32 rsv_13 : 23;  /* [31:9] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_cr0_u;

/* Define the union csr_smmu_cr0ack_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 smmuen : 1;   /* [0] */
        u32 priqen : 1;   /* [1] */
        u32 eventqen : 1; /* [2] */
        u32 cmdqen : 1;   /* [3] */
        u32 atschk : 1;   /* [4] */
        u32 rsv_14 : 1;   /* [5] */
        u32 vmw : 3;      /* [8:6] */
        u32 rsv_15 : 23;  /* [31:9] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_cr0ack_u;

/* Define the union csr_smmu_cr1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 queue_ic : 2; /* [1:0] */
        u32 queue_oc : 2; /* [3:2] */
        u32 queue_sh : 2; /* [5:4] */
        u32 table_ic : 2; /* [7:6] */
        u32 table_oc : 2; /* [9:8] */
        u32 table_sh : 2; /* [11:10] */
        u32 rsv_16 : 20;  /* [31:12] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_cr1_u;

/* Define the union csr_smmu_cr2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 e2h : 1;       /* [0] */
        u32 recinvsid : 1; /* [1] */
        u32 ptm : 1;       /* [2] */
        u32 rsv_17 : 29;   /* [31:3] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_cr2_u;

/* Define the union csr_smmu_statusr_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dormant : 1; /* [0] */
        u32 rsv_18 : 31; /* [31:1] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_statusr_u;

/* Define the union csr_smmu_gbpa_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4;  /* [3:0] */
        u32 mtcfg : 1;    /* [4] */
        u32 rsv_19 : 3;   /* [7:5] */
        u32 alloccfg : 4; /* [11:8] */
        u32 shcfg : 2;    /* [13:12] */
        u32 rsv_20 : 2;   /* [15:14] */
        u32 privcfg : 2;  /* [17:16] */
        u32 instcfg : 2;  /* [19:18] */
        u32 abort : 1;    /* [20] */
        u32 rsv_21 : 10;  /* [30:21] */
        u32 updating : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_gbpa_u;

/* Define the union csr_smmu_agbpa_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4;  /* [3:0] */
        u32 mtcfg : 1;    /* [4] */
        u32 rsv_22 : 3;   /* [7:5] */
        u32 alloccfg : 4; /* [11:8] */
        u32 shcfg : 2;    /* [13:12] */
        u32 rsv_23 : 2;   /* [15:14] */
        u32 privcfg : 2;  /* [17:16] */
        u32 instcfg : 2;  /* [19:18] */
        u32 abort : 1;    /* [20] */
        u32 rsv_24 : 10;  /* [30:21] */
        u32 updating : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_agbpa_u;

/* Define the union csr_smmu_irq_ctrl_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 gerror_irqen : 1; /* [0] */
        u32 priq_irqen : 1;   /* [1] */
        u32 eventq_irqen : 1; /* [2] */
        u32 rsv_25 : 29;      /* [31:3] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_irq_ctrl_u;

/* Define the union csr_smmu_irq_ctrlack_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 gerror_irqen : 1; /* [0] */
        u32 priq_irqen : 1;   /* [1] */
        u32 eventq_irqen : 1; /* [2] */
        u32 rsv_26 : 29;      /* [31:3] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_irq_ctrlack_u;

/* Define the union csr_smmu_gerror_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cmdq_err : 1;           /* [0] */
        u32 rsv_27 : 1;             /* [1] */
        u32 eventq_abt_err : 1;     /* [2] */
        u32 priq_abt_err : 1;       /* [3] */
        u32 msi_cmdq_abt_err : 1;   /* [4] */
        u32 msi_eventq_abt_err : 1; /* [5] */
        u32 msi_priq_abt_err : 1;   /* [6] */
        u32 msi_gerror_abt_err : 1; /* [7] */
        u32 sfm_err : 1;            /* [8] */
        u32 rsv_28 : 23;            /* [31:9] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_gerror_u;

/* Define the union csr_smmu_gerrorn_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cmdq_err : 1;           /* [0] */
        u32 rsv_29 : 1;             /* [1] */
        u32 eventq_abt_err : 1;     /* [2] */
        u32 priq_abt_err : 1;       /* [3] */
        u32 msi_cmdq_abt_err : 1;   /* [4] */
        u32 msi_eventq_abt_err : 1; /* [5] */
        u32 msi_priq_abt_err : 1;   /* [6] */
        u32 msi_gerror_abt_err : 1; /* [7] */
        u32 sfm_err : 1;            /* [8] */
        u32 rsv_30 : 23;            /* [31:9] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_gerrorn_u;

/* Define the union csr_smmu_gerror_irq_cfg0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_31 : 2; /* [1:0] */
        u32 addr : 30;  /* [31:2] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_gerror_irq_cfg0_0_u;

/* Define the union csr_smmu_gerror_irq_cfg0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 16;      /* [15:0] */
        u32 reserverd : 16; /* [31:16] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_gerror_irq_cfg0_1_u;

/* Define the union csr_smmu_gerror_irq_cfg1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 data : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_gerror_irq_cfg1_u;

/* Define the union csr_smmu_gerror_irq_cfg2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4; /* [3:0] */
        u32 sh : 2;      /* [5:4] */
        u32 rsv_32 : 26; /* [31:6] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_gerror_irq_cfg2_u;

/* Define the union csr_smmu_strtab_base0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_33 : 6; /* [5:0] */
        u32 addr : 26;  /* [31:6] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_strtab_base0_u;

/* Define the union csr_smmu_strtab_base1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 16;   /* [15:0] */
        u32 rsv_34 : 14; /* [29:16] */
        u32 ra : 1;      /* [30] */
        u32 rsv_35 : 1;  /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_strtab_base1_u;

/* Define the union csr_smmu_strtab_base_cfg_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 log2size : 6; /* [5:0] */
        u32 split : 5;    /* [10:6] */
        u32 rsv_36 : 5;   /* [15:11] */
        u32 fmt : 2;      /* [17:16] */
        u32 rsv_37 : 14;  /* [31:18] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_strtab_base_cfg_u;

/* Define the union csr_smmu_cmdq_base0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 log2size : 5; /* [4:0] */
        u32 addr : 27;    /* [31:5] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_cmdq_base0_u;

/* Define the union csr_smmu_cmdq_base1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 20;   /* [19:0] */
        u32 rsv_38 : 10; /* [29:20] */
        u32 ra : 1;      /* [30] */
        u32 rsv_39 : 1;  /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_cmdq_base1_u;

/* Define the union csr_smmu_cmdq_prod_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 wr : 19;     /* [18:0] */
        u32 wr_wrap : 1; /* [19] */
        u32 rsv_40 : 12; /* [31:20] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_cmdq_prod_u;

/* Define the union csr_smmu_cmdq_cons_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rd : 19;     /* [18:0] */
        u32 rd_wrap : 1; /* [19] */
        u32 rsv_41 : 4;  /* [23:20] */
        u32 err : 7;     /* [30:24] */
        u32 rsv_42 : 1;  /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_cmdq_cons_u;

/* Define the union csr_smmu_eventq_base0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 log2size : 5; /* [4:0] */
        u32 addr : 27;    /* [31:5] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_eventq_base0_u;

/* Define the union csr_smmu_eventq_base1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 20;   /* [19:0] */
        u32 rsv_43 : 10; /* [29:20] */
        u32 wa : 1;      /* [30] */
        u32 rsv_44 : 1;  /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_eventq_base1_u;

/* Define the union csr_smmu_eventq_prod_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 wr : 19;     /* [18:0] */
        u32 wr_wrap : 1; /* [19] */
        u32 rsv_45 : 11; /* [30:20] */
        u32 ovflg : 1;   /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_eventq_prod_u;

/* Define the union csr_smmu_eventq_cons_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rd : 19;      /* [18:0] */
        u32 rd_wrap : 1;  /* [19] */
        u32 rsv_46 : 11;  /* [30:20] */
        u32 ovackflg : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_eventq_cons_u;

/* Define the union csr_smmu_eventq_irq_cfg0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_47 : 2; /* [1:0] */
        u32 addr : 30;  /* [31:2] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_eventq_irq_cfg0_0_u;

/* Define the union csr_smmu_eventq_irq_cfg0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 16;   /* [15:0] */
        u32 rsv_48 : 16; /* [31:16] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_eventq_irq_cfg0_1_u;

/* Define the union csr_smmu_eventq_irq_cfg1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 data : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_eventq_irq_cfg1_u;

/* Define the union csr_smmu_eventq_irq_cfg2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4; /* [3:0] */
        u32 sh : 2;      /* [5:4] */
        u32 rsv_49 : 26; /* [31:6] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_eventq_irq_cfg2_u;

/* Define the union csr_smmu_priq_base0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 log2size : 5; /* [4:0] */
        u32 addr : 27;    /* [31:5] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_priq_base0_u;

/* Define the union csr_smmu_priq_base1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 20;   /* [19:0] */
        u32 rsv_50 : 10; /* [29:20] */
        u32 wa : 1;      /* [30] */
        u32 rsv_51 : 1;  /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_priq_base1_u;

/* Define the union csr_smmu_priq_prod_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 wr : 19;     /* [18:0] */
        u32 wr_wrap : 1; /* [19] */
        u32 rsv_52 : 11; /* [30:20] */
        u32 ovflg : 1;   /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_priq_prod_u;

/* Define the union csr_smmu_priq_cons_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rd : 19;      /* [18:0] */
        u32 rd_wrap : 1;  /* [19] */
        u32 rsv_53 : 11;  /* [30:20] */
        u32 ovackflg : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_priq_cons_u;

/* Define the union csr_smmu_priq_irq_cfg0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_54 : 2; /* [1:0] */
        u32 addr : 30;  /* [31:2] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_priq_irq_cfg0_0_u;

/* Define the union csr_smmu_priq_irq_cfg0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 16;   /* [15:0] */
        u32 rsv_55 : 16; /* [31:16] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_priq_irq_cfg0_1_u;

/* Define the union csr_smmu_priq_irq_cfg1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 data : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_priq_irq_cfg1_u;

/* Define the union csr_smmu_priq_irq_cfg2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4; /* [3:0] */
        u32 sh : 2;      /* [5:4] */
        u32 rsv_56 : 25; /* [30:6] */
        u32 lo : 1;      /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_priq_irq_cfg2_u;

/* Define the union csr_smmu_s_idr0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_57 : 13;     /* [12:0] */
        u32 msi : 1;         /* [13] */
        u32 rsv_58 : 10;     /* [23:14] */
        u32 stall_model : 2; /* [25:24] */
        u32 rsv_59 : 6;      /* [31:26] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_idr0_u;

/* Define the union csr_smmu_s_idr1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 s_sidsize : 6;   /* [5:0] */
        u32 rsv_60 : 23;     /* [28:6] */
        u32 sel2 : 1;        /* [29] */
        u32 rsv_61 : 1;      /* [30] */
        u32 secure_impl : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_idr1_u;

/* Define the union csr_smmu_s_idr2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ba_s_vatos : 10; /* [9:0] */
        u32 rsv_62 : 22;     /* [31:10] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_idr2_u;

/* Define the union csr_smmu_s_idr3_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_63 : 6;  /* [5:0] */
        u32 sams : 1;    /* [6] */
        u32 rsv_64 : 25; /* [31:7] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_idr3_u;

/* Define the union csr_smmu_s_cr0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 smmuen : 1;   /* [0] */
        u32 rsv_65 : 1;   /* [1] */
        u32 eventqen : 1; /* [2] */
        u32 cmdqen : 1;   /* [3] */
        u32 rsv_66 : 1;   /* [4] */
        u32 sif : 1;      /* [5] */
        u32 vmw : 3;      /* [8:6] */
        u32 nsstalld : 1; /* [9] */
        u32 rsv_67 : 22;  /* [31:10] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_cr0_u;

/* Define the union csr_smmu_s_cr0ack_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 smmuen : 1;   /* [0] */
        u32 rsv_68 : 1;   /* [1] */
        u32 eventqen : 1; /* [2] */
        u32 cmdqen : 1;   /* [3] */
        u32 rsv_69 : 1;   /* [4] */
        u32 sif : 1;      /* [5] */
        u32 vmw : 3;      /* [8:6] */
        u32 nsstalld : 1; /* [9] */
        u32 rsv_70 : 22;  /* [31:10] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_cr0ack_u;

/* Define the union csr_smmu_s_cr1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 queue_ic : 2; /* [1:0] */
        u32 queue_oc : 2; /* [3:2] */
        u32 queue_sh : 2; /* [5:4] */
        u32 table_ic : 2; /* [7:6] */
        u32 table_oc : 2; /* [9:8] */
        u32 table_sh : 2; /* [11:10] */
        u32 rsv_71 : 20;  /* [31:12] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_cr1_u;

/* Define the union csr_smmu_s_cr2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 e2h : 1;       /* [0] */
        u32 recinvsid : 1; /* [1] */
        u32 ptm : 1;       /* [2] */
        u32 rsv_72 : 29;   /* [31:3] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_cr2_u;

/* Define the union csr_smmu_s_init_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 inv_all : 1; /* [0] */
        u32 rsv_73 : 31; /* [31:1] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_init_u;

/* Define the union csr_smmu_s_gbpa_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4;  /* [3:0] */
        u32 mtcfg : 1;    /* [4] */
        u32 rsv_74 : 3;   /* [7:5] */
        u32 alloccfg : 4; /* [11:8] */
        u32 shcfg : 2;    /* [13:12] */
        u32 nscfg : 2;    /* [15:14] */
        u32 privcfg : 2;  /* [17:16] */
        u32 instcfg : 2;  /* [19:18] */
        u32 abort : 1;    /* [20] */
        u32 rsv_75 : 10;  /* [30:21] */
        u32 updating : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_gbpa_u;

/* Define the union csr_smmu_s_agbpa_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4;  /* [3:0] */
        u32 mtcfg : 1;    /* [4] */
        u32 rsv_76 : 3;   /* [7:5] */
        u32 alloccfg : 4; /* [11:8] */
        u32 shcfg : 2;    /* [13:12] */
        u32 nscfg : 2;    /* [15:14] */
        u32 privcfg : 2;  /* [17:16] */
        u32 instcfg : 2;  /* [19:18] */
        u32 abort : 1;    /* [20] */
        u32 rsv_77 : 10;  /* [30:21] */
        u32 updating : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_agbpa_u;

/* Define the union csr_smmu_s_irq_ctrl_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 gerror_irqen_s : 1; /* [0] */
        u32 rsv_78 : 1;         /* [1] */
        u32 eventq_irqen_s : 1; /* [2] */
        u32 rsv_79 : 29;        /* [31:3] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_irq_ctrl_u;

/* Define the union csr_smmu_s_irq_ctrlack_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 gerror_irqen_s : 1; /* [0] */
        u32 rsv_80 : 1;         /* [1] */
        u32 eventq_irqen_s : 1; /* [2] */
        u32 rsv_81 : 29;        /* [31:3] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_irq_ctrlack_u;

/* Define the union csr_smmu_s_gerror_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cmdq_err : 1;           /* [0] */
        u32 rsv_82 : 1;             /* [1] */
        u32 eventq_abt_err : 1;     /* [2] */
        u32 rsv_83 : 1;             /* [3] */
        u32 msi_cmdq_abt_err : 1;   /* [4] */
        u32 msi_eventq_abt_err : 1; /* [5] */
        u32 rsv_84 : 1;             /* [6] */
        u32 msi_gerror_abt_err : 1; /* [7] */
        u32 sfm_err : 1;            /* [8] */
        u32 rsv_85 : 23;            /* [31:9] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_gerror_u;

/* Define the union csr_smmu_s_gerrorn_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cmdq_err : 1;           /* [0] */
        u32 rsv_86 : 1;             /* [1] */
        u32 eventq_abt_err : 1;     /* [2] */
        u32 rsv_87 : 1;             /* [3] */
        u32 msi_cmdq_abt_err : 1;   /* [4] */
        u32 msi_eventq_abt_err : 1; /* [5] */
        u32 rsv_88 : 1;             /* [6] */
        u32 msi_gerror_abt_err : 1; /* [7] */
        u32 sfm_err : 1;            /* [8] */
        u32 rsv_89 : 23;            /* [31:9] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_gerrorn_u;

/* Define the union csr_smmu_s_gerror_irq_cfg0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_90 : 2; /* [1:0] */
        u32 addr : 30;  /* [31:2] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_gerror_irq_cfg0_0_u;

/* Define the union csr_smmu_s_gerror_irq_cfg0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 16;      /* [15:0] */
        u32 reserverd : 16; /* [31:16] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_gerror_irq_cfg0_1_u;

/* Define the union csr_smmu_s_gerror_irq_cfg1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 data : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_gerror_irq_cfg1_u;

/* Define the union csr_smmu_s_gerror_irq_cfg2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4; /* [3:0] */
        u32 sh : 2;      /* [5:4] */
        u32 rsv_91 : 26; /* [31:6] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_gerror_irq_cfg2_u;

/* Define the union csr_smmu_s_strtab_base0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_92 : 6; /* [5:0] */
        u32 addr : 26;  /* [31:6] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_strtab_base0_u;

/* Define the union csr_smmu_s_strtab_base1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 16;   /* [15:0] */
        u32 rsv_93 : 14; /* [29:16] */
        u32 ra : 1;      /* [30] */
        u32 rsv_94 : 1;  /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_strtab_base1_u;

/* Define the union csr_smmu_s_strtab_base_cfg_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 log2size : 6; /* [5:0] */
        u32 split : 5;    /* [10:6] */
        u32 rsv_95 : 5;   /* [15:11] */
        u32 fmt : 2;      /* [17:16] */
        u32 rsv_96 : 14;  /* [31:18] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_strtab_base_cfg_u;

/* Define the union csr_smmu_s_cmdq_base0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 log2size : 5; /* [4:0] */
        u32 addr : 27;    /* [31:5] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_cmdq_base0_u;

/* Define the union csr_smmu_s_cmdq_base1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 20;   /* [19:0] */
        u32 rsv_97 : 10; /* [29:20] */
        u32 ra : 1;      /* [30] */
        u32 rsv_98 : 1;  /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_cmdq_base1_u;

/* Define the union csr_smmu_s_cmdq_prod_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 wr : 19;     /* [18:0] */
        u32 wr_wrap : 1; /* [19] */
        u32 rsv_99 : 12; /* [31:20] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_cmdq_prod_u;

/* Define the union csr_smmu_s_cmdq_cons_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rd : 19;     /* [18:0] */
        u32 rd_wrap : 1; /* [19] */
        u32 rsv_100 : 4; /* [23:20] */
        u32 err : 7;     /* [30:24] */
        u32 rsv_101 : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_cmdq_cons_u;

/* Define the union csr_smmu_s_eventq_base0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 log2size : 5; /* [4:0] */
        u32 addr : 27;    /* [31:5] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_eventq_base0_u;

/* Define the union csr_smmu_s_eventq_base1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 20;    /* [19:0] */
        u32 rsv_102 : 10; /* [29:20] */
        u32 wa : 1;       /* [30] */
        u32 rsv_103 : 1;  /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_eventq_base1_u;

/* Define the union csr_smmu_s_eventq_prod_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 wr : 19;      /* [18:0] */
        u32 wr_wrap : 1;  /* [19] */
        u32 rsv_104 : 11; /* [30:20] */
        u32 ovflg : 1;    /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_eventq_prod_u;

/* Define the union csr_smmu_s_eventq_cons_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rd : 19;      /* [18:0] */
        u32 rd_wrap : 1;  /* [19] */
        u32 rsv_105 : 11; /* [30:20] */
        u32 ovackflg : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_eventq_cons_u;

/* Define the union csr_smmu_s_eventq_irq_cfg0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_106 : 2; /* [1:0] */
        u32 addr : 30;   /* [31:2] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_eventq_irq_cfg0_0_u;

/* Define the union csr_smmu_s_eventq_irq_cfg0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 16;    /* [15:0] */
        u32 rsv_107 : 16; /* [31:16] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_eventq_irq_cfg0_1_u;

/* Define the union csr_smmu_s_eventq_irq_cfg1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 data : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_eventq_irq_cfg1_u;

/* Define the union csr_smmu_s_eventq_irq_cfg2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4;  /* [3:0] */
        u32 sh : 2;       /* [5:4] */
        u32 rsv_108 : 26; /* [31:6] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_s_eventq_irq_cfg2_u;

/* Define the union csr_smmu_user_config0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 l2_tlb_en : 1;                  /* [0] */
        u32 cmd_ots_en : 1;                 /* [1] */
        u32 walk_cache_en : 1;              /* [2] */
        u32 page_cache_en : 1;              /* [3] */
        u32 l2_tlb_gs_set : 4;              /* [7:4] */
        u32 sky_bypass_en : 1;              /* [8] */
        u32 sky_bypass_wr_force : 1;        /* [9] */
        u32 sky_bypass_rd_force : 1;        /* [10] */
        u32 l2_allocate_l1_en : 1;          /* [11] */
        u32 stream_req_opt : 8;             /* [19:12] */
        u32 ste_bypass_allocate_tlb_en : 1; /* [20] */
        u32 readonce_makeinvalid : 1;       /* [21] */
        u32 stream_write_mode_sp : 1;       /* [22] */
        u32 writeback_spill_en : 1;         /* [23] */
        u32 stash_dieid0 : 2;               /* [25:24] */
        u32 stash_dieid1 : 2;               /* [27:26] */
        u32 stream_write_mode_tp : 1;       /* [28] */
        u32 l2_tlb_index_mode : 1;          /* [29] */
        u32 mpam_en : 1;                    /* [30] */
        u32 pcie_invld_mode : 1;            /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_user_config0_u;

/* Define the union csr_smmu_user_config1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 master0_gs : 2; /* [1:0] */
        u32 master1_gs : 2; /* [3:2] */
        u32 master2_gs : 2; /* [5:4] */
        u32 master3_gs : 2; /* [7:6] */
        u32 master4_gs : 2; /* [9:8] */
        u32 master5_gs : 2; /* [11:10] */
        u32 master6_gs : 2; /* [13:12] */
        u32 master7_gs : 2; /* [15:14] */
        u32 rsv_109 : 16;   /* [31:16] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_user_config1_u;

/* Define the union csr_smmu_veri_id_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 version_id : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_veri_id_u;

/* Define the union csr_smmu_prod_info_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 implementer : 12; /* [11:0] */
        u32 revision : 4;     /* [15:12] */
        u32 variant : 4;      /* [19:16] */
        u32 productid : 12;   /* [31:20] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_prod_info_u;

/* Define the union csr_smmu_user_config2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 inv_all_ns : 1; /* [0] */
        u32 rsv_110 : 31;   /* [31:1] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_user_config2_u;

/* Define the union csr_smmu_pcie_irpt_en_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 irpt_topcie_en : 1; /* [0] */
        u32 rsv_111 : 31;       /* [31:1] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pcie_irpt_en_u;

/* Define the union csr_smmu_pcie_irpt_addr_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 irpt_topcie_addr : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pcie_irpt_addr_u;

/* Define the union csr_smmu_pcie_irpt_data_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 irpt_topcie_data : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pcie_irpt_data_u;

/* Define the union csr_smmu_user_config3_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ptw_qos : 4;                 /* [3:0] */
        u32 stash_die_mode : 1;          /* [4] */
        u32 tocpa_en : 1;                /* [5] */
        u32 ptw_invld_mode : 1;          /* [6] */
        u32 iocache_comp_mode : 1;       /* [7] */
        u32 reg_pri_mode : 1;            /* [8] */
        u32 reg_ats_mode : 1;            /* [9] */
        u32 reg_inv_va_disable : 1;      /* [10] */
        u32 reg_l2_inv_va_mode : 1;      /* [11] */
        u32 reg_sky_not_block : 1;       /* [12] */
        u32 reg_sky_not_block_int : 1;   /* [13] */
        u32 reg_add_stash : 1;           /* [14] */
        u32 reg_queue_nca_en : 1;        /* [15] */
        u32 reg_sync_nowait : 1;         /* [16] */
        u32 reg_sync_nowait_read : 1;    /* [17] */
        u32 reg_eventq_stash_en : 1;     /* [18] */
        u32 reg_long_atomic_en : 1;      /* [19] */
        u32 reg_hyp_mode : 1;            /* [20] */
        u32 reg_wc_hit_mode : 1;         /* [21] */
        u32 reg_single_totem_mode : 1;   /* [22] */
        u32 reg_relax_order : 1;         /* [23] */
        u32 reg_atc_ots_en : 1;          /* [24] */
        u32 reg_irpt_en : 1;             /* [25] */
        u32 reg_range_invld_en : 1;      /* [26] */
        u32 reg_tlb_ns_only : 1;         /* [27] */
        u32 reg_sync_nowait_notrans : 1; /* [28] */
        u32 reg_wc_invall_mode : 1;      /* [29] */
        u32 rsv_112 : 2;                 /* [31:30] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_user_config3_u;

/* Define the union csr_smmu_user_config4_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 reg_range_invld_cnt : 4; /* [3:0] */
        u32 rsv_113 : 28;            /* [31:4] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_user_config4_u;

/* Define the union csr_dfx_cmd_ns_cons_cnt0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_114 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_dfx_cmd_ns_cons_cnt0_u;

/* Define the union csr_dfx_cmd_ns_cons_cnt1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_115 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_dfx_cmd_ns_cons_cnt1_u;

/* Define the union csr_smmu_sky_queue_pointer_sp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_id : 8; /* [7:0] */
        u32 rsv_116 : 24;               /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_pointer_sp_u;

/* Define the union csr_smmu_sky_queue_addr_low_sp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_addr_low : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_addr_low_sp_u;

/* Define the union csr_smmu_sky_queue_addr_high_sp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_addr_high : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_addr_high_sp_u;

/* Define the union csr_smmu_sky_queue_stat0_sp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_stat : 16; /* [15:0] */
        u32 dfx_sky_queue_probe_txnid : 8; /* [23:16] */
        u32 dfx_sky_queue_probe_mstid : 3; /* [26:24] */
        u32 rsv_117 : 5;                   /* [31:27] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_stat0_sp_u;

/* Define the union csr_smmu_sky_queue_stat1_sp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_strmid : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_stat1_sp_u;

/* Define the union csr_smmu_sky_queue_pointer_tp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_id : 8; /* [7:0] */
        u32 rsv_118 : 24;               /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_pointer_tp_u;

/* Define the union csr_smmu_sky_queue_addr_low_tp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_addr_low : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_addr_low_tp_u;

/* Define the union csr_smmu_sky_queue_addr_high_tp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_addr_high : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_addr_high_tp_u;

/* Define the union csr_smmu_sky_queue_stat0_tp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_stat : 16; /* [15:0] */
        u32 dfx_sky_queue_probe_txnid : 8; /* [23:16] */
        u32 dfx_sky_queue_probe_mstid : 3; /* [26:24] */
        u32 rsv_119 : 5;                   /* [31:27] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_stat0_tp_u;

/* Define the union csr_smmu_sky_queue_stat1_tp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_probe_strmid : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_sky_queue_stat1_tp_u;

/* Define the union csr_smmu_dfx_cmd_num_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cmd_num_sp : 8; /* [7:0] */
        u32 cmd_num_tp : 8; /* [15:8] */
        u32 rsv_120 : 16;   /* [31:16] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_dfx_cmd_num_u;

/* Define the union csr_smmu_dfx_cmd_queue_stat0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_cmd_queue_stat0 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_dfx_cmd_queue_stat0_u;

/* Define the union csr_smmu_dfx_fault_num_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 fault_cnt : 30;        /* [29:0] */
        u32 dfx_stall_irpt_sp : 1; /* [30] */
        u32 dfx_stall_irpt_tp : 1; /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_dfx_fault_num_u;

/* Define the union csr_smmu_dfx_test_monitor_sp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_valud_num : 8;  /* [7:0] */
        u32 block_axi_mst_num : 8;        /* [15:8] */
        u32 block_axi_wr_order : 1;       /* [16] */
        u32 block_axi_rd_order : 1;       /* [17] */
        u32 block_axi_wr_norder : 1;      /* [18] */
        u32 block_axi_rd_norder : 1;      /* [19] */
        u32 block_axi_wr_norder_long : 1; /* [20] */
        u32 block_axi_rd_norder_long : 1; /* [21] */
        u32 rsv_121 : 10;                 /* [31:22] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_dfx_test_monitor_sp_u;

/* Define the union csr_smmu_dfx_test_monitor_tp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_valud_num : 8;  /* [7:0] */
        u32 block_axi_mst_num : 8;        /* [15:8] */
        u32 block_axi_wr_order : 1;       /* [16] */
        u32 block_axi_rd_order : 1;       /* [17] */
        u32 block_axi_wr_norder : 1;      /* [18] */
        u32 block_axi_rd_norder : 1;      /* [19] */
        u32 block_axi_wr_norder_long : 1; /* [20] */
        u32 block_axi_rd_norder_long : 1; /* [21] */
        u32 rsv_122 : 10;                 /* [31:22] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_dfx_test_monitor_tp_u;

/* Define the union csr_smmu_dfx_ecc_monitor_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 l2_ecc_cnt : 8;          /* [7:0] */
        u32 cntxt_cache_ecc_cnt : 8; /* [15:8] */
        u32 axi_ecc_err_sp_cnt : 8;  /* [23:16] */
        u32 axi_ecc_err_tp_cnt : 8;  /* [31:24] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_dfx_ecc_monitor_u;

/* Define the union csr_smmu_stall_queue_stat0_sp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_stall_strmid : 25; /* [24:0] */
        u32 rsv_123 : 7;                     /* [31:25] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_stall_queue_stat0_sp_u;

/* Define the union csr_smmu_stall_queue_stat1_sp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_stall_txnid : 8; /* [7:0] */
        u32 dfx_sky_queue_stall_ns : 1;    /* [8] */
        u32 rsv_124 : 23;                  /* [31:9] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_stall_queue_stat1_sp_u;

/* Define the union csr_smmu_stall_queue_stat0_tp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_stall_strmid : 25; /* [24:0] */
        u32 rsv_125 : 7;                     /* [31:25] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_stall_queue_stat0_tp_u;

/* Define the union csr_smmu_stall_queue_stat1_tp_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_sky_queue_stall_txnid : 8; /* [7:0] */
        u32 dfx_sky_queue_stall_ns : 1;    /* [8] */
        u32 rsv_126 : 23;                  /* [31:9] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_stall_queue_stat1_tp_u;

/* Define the union csr_smmu_ecc_inject_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 inject_1bit_sel : 8; /* [7:0] */
        u32 inject_2bit_sel : 8; /* [15:8] */
        u32 inject_axi_en : 1;   /* [16] */
        u32 inject_tbu_en : 1;   /* [17] */
        u32 inject_tcu_en : 1;   /* [18] */
        u32 inject_2bit_en : 1;  /* [19] */
        u32 rsv_127 : 12;        /* [31:20] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_ecc_inject_u;

/* Define the union csr_smmu_ptw_status_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_ptw_status : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_ptw_status_u;

/* Define the union csr_smmu_ptw_status_s2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_ptw_status_s2 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_ptw_status_s2_u;

/* Define the union csr_smmu_dfx_cmd_queue_stat1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 dfx_cmd_queue_stat1 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_dfx_cmd_queue_stat1_u;

/* Define the union csr_smmu_pmcg_evcntrn_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 evcnt_0 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_evcntrn_0_u;

/* Define the union csr_smmu_pmcg_evcntrn_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 evcnt_1 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_evcntrn_1_u;

/* Define the union csr_smmu_pmcg_evtypern_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 pmcg_event : 16;     /* [15:0] */
        u32 rsv_128 : 13;        /* [28:16] */
        u32 filter_sid_span : 1; /* [29] */
        u32 filter_sec_sid : 1;  /* [30] */
        u32 ovfcap : 1;          /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_evtypern_u;

/* Define the union csr_smmu_pmcg_svrn_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 svr0 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_svrn_0_u;

/* Define the union csr_smmu_pmcg_svrn_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 svr1 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_svrn_1_u;

/* Define the union csr_smmu_pmcg_smrn_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 streamid : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_smrn_u;

/* Define the union csr_smmu_pmcg_cntenset0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cnten : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cntenset0_0_u;

/* Define the union csr_smmu_pmcg_cntenset0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cnten : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cntenset0_1_u;

/* Define the union csr_smmu_pmcg_cntenclr0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cntclr : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cntenclr0_0_u;

/* Define the union csr_smmu_pmcg_cntenclr0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cntclr : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cntenclr0_1_u;

/* Define the union csr_smmu_pmcg_intenset0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 inten : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_intenset0_0_u;

/* Define the union csr_smmu_pmcg_intenset0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 inten : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_intenset0_1_u;

/* Define the union csr_smmu_pmcg_intenclr0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 intclr : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_intenclr0_0_u;

/* Define the union csr_smmu_pmcg_intenclr0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 intclr : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_intenclr0_1_u;

/* Define the union csr_smmu_pmcg_ovsclr0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ovs : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_ovsclr0_0_u;

/* Define the union csr_smmu_pmcg_ovsclr0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ovs : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_ovsclr0_1_u;

/* Define the union csr_smmu_pmcg_ovsset0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ovs : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_ovsset0_0_u;

/* Define the union csr_smmu_pmcg_ovsset0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ovs : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_ovsset0_1_u;

/* Define the union csr_smmu_pmcg_capr_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 capture : 1;  /* [0] */
        u32 rsv_129 : 31; /* [31:1] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_capr_u;

/* Define the union csr_smmu_pmcg_scr_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 so : 1;       /* [0] */
        u32 nsra : 1;     /* [1] */
        u32 nsmsi : 1;    /* [2] */
        u32 rsv_130 : 28; /* [30:3] */
        u32 readone : 1;  /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_scr_u;

/* Define the union csr_smmu_pmcg_cfgr_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 nctr : 6;            /* [5:0] */
        u32 rsv_131 : 2;         /* [7:6] */
        u32 pmcg_size : 6;       /* [13:8] */
        u32 rsv_132 : 6;         /* [19:14] */
        u32 reloc_ctrs : 1;      /* [20] */
        u32 msi : 1;             /* [21] */
        u32 capture : 1;         /* [22] */
        u32 sid_filter_type : 1; /* [23] */
        u32 mpam : 1;            /* [24] */
        u32 rsv_133 : 7;         /* [31:25] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cfgr_u;

/* Define the union csr_smmu_pmcg_cr_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 e : 1;        /* [0] */
        u32 rsv_134 : 31; /* [31:1] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cr_u;

/* Define the union csr_smmu_pmcg_ceid0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 event_en : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_ceid0_0_u;

/* Define the union csr_smmu_pmcg_ceid0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 event_en : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_ceid0_1_u;

/* Define the union csr_smmu_pmcg_ceid1_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 event_en : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_ceid1_0_u;

/* Define the union csr_smmu_pmcg_ceid1_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 event_en : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_ceid1_1_u;

/* Define the union csr_smmu_pmcg_irq_ctrl_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 irqen : 1;    /* [0] */
        u32 rsv_135 : 31; /* [31:1] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_irq_ctrl_u;

/* Define the union csr_smmu_pmcg_irq_ctrlack_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 irqen : 1;    /* [0] */
        u32 rsv_136 : 31; /* [31:1] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_irq_ctrlack_u;

/* Define the union csr_smmu_pmcg_irq_cfg0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_137 : 2; /* [1:0] */
        u32 addr : 30;   /* [31:2] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_irq_cfg0_0_u;

/* Define the union csr_smmu_pmcg_irq_cfg0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 addr : 20;    /* [19:0] */
        u32 rsv_138 : 12; /* [31:20] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_irq_cfg0_1_u;

/* Define the union csr_smmu_pmcg_irq_cfg1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 data : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_irq_cfg1_u;

/* Define the union csr_smmu_pmcg_irq_cfg2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 memattr : 4;  /* [3:0] */
        u32 sh : 2;       /* [5:4] */
        u32 rsv_139 : 26; /* [31:6] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_irq_cfg2_u;

/* Define the union csr_smmu_pmcg_irq_status_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 irq_abt : 1;  /* [0] */
        u32 rsv_140 : 31; /* [31:1] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_irq_status_u;

/* Define the union csr_smmu_pmcg_aidr_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 archminorrev : 4; /* [3:0] */
        u32 archmajorrev : 4; /* [7:4] */
        u32 rsv_141 : 24;     /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_aidr_u;

/* Define the union csr_smmu_pmcg_cidr0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 preamble : 8; /* [7:0] */
        u32 reseved : 24; /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cidr0_u;

/* Define the union csr_smmu_pmcg_cidr1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 preamble : 4;   /* [3:0] */
        u32 pmcg_class : 4; /* [7:4] */
        u32 reseved : 24;   /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cidr1_u;

/* Define the union csr_smmu_pmcg_cidr2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 preamble : 8; /* [7:0] */
        u32 reseved : 24; /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cidr2_u;

/* Define the union csr_smmu_pmcg_cidr3_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 preamble : 8; /* [7:0] */
        u32 reseved : 24; /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_cidr3_u;

/* Define the union csr_smmu_pmcg_pidr0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 part_0 : 8;   /* [7:0] */
        u32 reseved : 24; /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pidr0_u;

/* Define the union csr_smmu_pmcg_pidr1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 part_1 : 4;   /* [3:0] */
        u32 des_0 : 4;    /* [7:4] */
        u32 reseved : 24; /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pidr1_u;

/* Define the union csr_smmu_pmcg_pidr2_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 des_1 : 3;                /* [2:0] */
        u32 jedec_assigned_value : 1; /* [3] */
        u32 revision : 4;             /* [7:4] */
        u32 reseved : 24;             /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pidr2_u;

/* Define the union csr_smmu_pmcg_pidr3_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 cmod : 4;     /* [3:0] */
        u32 revand : 4;   /* [7:4] */
        u32 reseved : 24; /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pidr3_u;

/* Define the union csr_smmu_pmcg_pidr4_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 des_2 : 4;     /* [3:0] */
        u32 pmcg_size : 4; /* [7:4] */
        u32 reseved : 24;  /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pidr4_u;

/* Define the union csr_smmu_pmcg_pidr5_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 reseved : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pidr5_u;

/* Define the union csr_smmu_pmcg_pidr6_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 reseved : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pidr6_u;

/* Define the union csr_smmu_pmcg_pidr7_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 reseved : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pidr7_u;

/* Define the union csr_smmu_pmcg_pmauthstatus_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 reseved : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pmauthstatus_u;

/* Define the union csr_smmu_pmcg_pmdevarch_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 archid : 16;    /* [15:0] */
        u32 revision : 4;   /* [19:16] */
        u32 present : 1;    /* [20] */
        u32 architect : 11; /* [31:21] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pmdevarch_u;

/* Define the union csr_smmu_pmcg_pmdevtype_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 pm_dev_type_low : 4;  /* [3:0] */
        u32 pm_dev_type_high : 4; /* [7:4] */
        u32 reseved : 24;         /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_pmcg_pmdevtype_u;

/* Define the union csr_smmu_err_fr_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ed : 2;       /* [1:0] */
        u32 rsv_142 : 2;  /* [3:2] */
        u32 ui : 2;       /* [5:4] */
        u32 fi : 2;       /* [7:6] */
        u32 ue : 2;       /* [9:8] */
        u32 cfi : 2;      /* [11:10] */
        u32 cec : 3;      /* [14:12] */
        u32 rp : 1;       /* [15] */
        u32 dui : 2;      /* [17:16] */
        u32 ceo : 2;      /* [19:18] */
        u32 rsv_143 : 12; /* [31:20] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_fr_0_u;

/* Define the union csr_smmu_err_fr_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_144 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_fr_1_u;

/* Define the union csr_smmu_err_ctrl_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ed : 1;       /* [0] */
        u32 rsv_145 : 1;  /* [1] */
        u32 ui : 1;       /* [2] */
        u32 fi : 1;       /* [3] */
        u32 ue : 1;       /* [4] */
        u32 rsv_146 : 3;  /* [7:5] */
        u32 cfi : 1;      /* [8] */
        u32 rsv_147 : 1;  /* [9] */
        u32 dui : 1;      /* [10] */
        u32 rsv_148 : 21; /* [31:11] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_ctrl_0_u;

/* Define the union csr_smmu_err_ctrl_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_149 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_ctrl_1_u;

/* Define the union csr_smmu_err_status_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 serr : 8;    /* [7:0] */
        u32 ierr : 8;    /* [15:8] */
        u32 rsv_150 : 4; /* [19:16] */
        u32 uet : 2;     /* [21:20] */
        u32 pn : 1;      /* [22] */
        u32 de : 1;      /* [23] */
        u32 ce : 2;      /* [25:24] */
        u32 mv : 1;      /* [26] */
        u32 of : 1;      /* [27] */
        u32 er : 1;      /* [28] */
        u32 ue : 1;      /* [29] */
        u32 v : 1;       /* [30] */
        u32 av : 1;      /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_status_0_u;

/* Define the union csr_smmu_err_status_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_151 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_status_1_u;

/* Define the union csr_smmu_err_addr_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 err_addr_low : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_addr_0_u;

/* Define the union csr_smmu_err_addr_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 err_addr_high : 16; /* [15:0] */
        u32 rsv_152 : 13;       /* [28:16] */
        u32 addr_ai : 1;        /* [29] */
        u32 nsv : 1;            /* [30] */
        u32 addr_ns : 1;        /* [31] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_addr_1_u;

/* Define the union csr_smmu_err_misc0_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_153 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_misc0_0_u;

/* Define the union csr_smmu_err_misc0_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 ecc_err_cnt : 7;    /* [6:0] */
        u32 ecc_err_ovflow : 1; /* [7] */
        u32 rsv_154 : 24;       /* [31:8] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_misc0_1_u;

/* Define the union csr_smmu_err_misc1_0_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_155 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_misc1_0_u;

/* Define the union csr_smmu_err_misc1_1_u */
typedef union {
    /* Define the struct bits */
    struct {
        u32 rsv_156 : 32; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    u32 value;
} csr_smmu_err_misc1_1_u;


#endif // __SMMU_C_UNION_DEFINE_H__
